package conponent;

import module.Status;

import java.awt.event.KeyEvent;

public interface Player extends Entity,Runnable{

    /**
     * 获取当前玩家线程
     * @return
     */
    Thread getThread();


    /**
     * 获取人物的当前状态，比如面向左站立，面向左行走，施法，主要用于描述人的动作状态
     * @return 状态的枚举值
     */
    Status getStatus();


    /**
     * 获取人物的特殊状态，如缓慢，中毒，回血等状态
     * @return 状态的枚举值
     */
    Status getSpecialStatus();

    /**
     * 人物向左移动，操作的是状态
     */
    void leftMove();

    /**
     * 人物像右移动，操作的是状态
     */
    void rightMove();

    /**
     * 人物向上移动，操作的是状态
     */
    void upMove();

    /**
     * 人物向下移动，操作的是状态
     */
    void downMove();

    /**
     * 人物停止移动
     */
    void stopMove();

    /**
     * 给人物添加一个合成好的魔法
     * @param mb
     */
    void addMagic(MagicBallComp mb);

    /**
     * 动作，主要指玩家施法动作
     * @param i 触发的法术索引
     */
    void action(int i);

    /**
     * 根据法术槽索引获取魔法球对象，用于视图渲染
     * @param index 法术槽索引
     * @return 魔法球对象
     */
    MagicBall getMagicBall(int index);


}
